package com.rb.service;

import java.sql.Timestamp;
import java.util.List;
import java.util.Map;

import com.rb.model.Auth_code;
import com.rb.model.Robot;
import com.rb.model.Secret_key;
import com.rb.model.User;
import com.rb.model.User_log;

/**
 * @author 作者 :ZYY
 * @version 创建时间：2016年12月16日 上午10:02:18 类说明
 */
public interface UserServiceDAO {

	// 机器人注册
	public abstract Map<String, Object> addRobot(Robot robot);

	// 校验机器人绑定
	public abstract Robot judgeRobot(String uid);

	//主人注册（机器人端）
	public abstract Map<String, Object> addUser(User user,String uid,String auth_code);
	
	//用户注册（手机端）
	public abstract Map<String, Object> addUser1(User user,String auth_code);
	
	//添加验证码
	public abstract Map<String, Object> addAuthCode(String account,String code,Timestamp time);
	
	//根据账号查询验证码
	public abstract Auth_code findAuthCodeByAccount(String account);
	
	
	//用户查询根据账号
	public abstract User findUserByAccount(String account);
	
	//用户登录
	public abstract Map<String, Object> userLogin(String account,String password,Timestamp time);
	
	//用户登出
	public abstract Map<String, Object> userLogout(String account,Timestamp time);
	
	//修改用户状态
	public abstract boolean changeUser(User user);
	
	//添加日志
	public abstract boolean addLog(User_log user_log);
	
	//修改机器人信息
	public abstract Map<String, Object> updateRobot(String uid,String newName,Timestamp time);
	
	//校验机器人注册绑定信息
	public abstract Map<String, Object> judgeRobotStatus(String uid);
	
	//校验用户(根据账号，取得用户权限，如果是主人，还要有机器人uid)
	public abstract List<Object> judgeUserLogin(String account);
	
	//用户密钥操作（第一次登陆添加密钥，之后每次登陆都更新密钥，登出则替换为0）
	public abstract Map<String, Object> changeSecretKey(String account);
	
	//根据用户账号查询密钥
	public abstract Secret_key findSecretKeyByAccount(String account);
	
	//修改用户昵称
	public abstract Map<String, Object> changeUserName(String mobile,String name);
	
	//修改用户头像
	public abstract Map<String, Object> changeUserHead(String mobile,String head,String head_name);
	
	//修改用户密码
	public abstract Map<String, Object> changeUserPwd(String mobile,String password,String auth_code);
	
	//修改用户密码
	public abstract Map<String, Object> changeUserPwd1(String mobile,String password,String newpassword);
	//修改用户手机
	public abstract Map<String, Object> changeUserMobile(String mobile,String newMobile,String auth_code,Timestamp time);
	
	//获得机器人信息
	public abstract Robot findRobotByUid(String uid);
	
	public abstract Robot findRobotByAccount(String account);
	
	//删除用户（根据账号）
	public abstract int deleteUserByAccount(String account);
	
	//删除机器人（根据uid）
	public abstract int deleteRobotByUid(String uid);
	
	//查询所有用户
	public abstract List<Robot> showAllRobot();
	
	//查询所有机器人
	public abstract List<User> showAllUser();
	
	//添加群组（原理：主人拉已经注册过的用户进群组，将用户和机器人绑定，权限低于主人）
	
	//------------------------------------------------------------------------------------------------
	
	

}
